Stepper motors are widely used in speedometers, tachometers and similar gauges in automobiles and other applications. A stepper motor is one which moves through an integer number of steps as it goes through a revolution. This operation is controlled by the mechanical construction of the motor and its magnets.
In many conventional applications a stepper motor load may be moved to finite number position regardless of the origin position i.e. where the motor starts at. For example, if stepper motor drives a speedometer needle in an automotive application, there is zero position where speedometer readings are zero corresponding to where the speed is zero. In another application if a stepper motor is used to move a printer head, there is an origin position that corresponds to the left side (start position) of a sheet of paper. In these example applications the motor load must be moved to some initial position and uses this is as the origin point.
A stepper motor must be synchronized, which means that the position at which a needle (such as a speedometer needle) attached to the motor hits a stop point (for example zero miles per hour in a speedometer) needs to be sensed so the motor recognizes that it is at the zero point. The operation of a conventional stepper motor stop position synchronization solution 100 is shown in FIG. 1. FIG. 1 shows operation 100, with five positions of a rotor magnet and needle.
The first position 110 shows a rotor magnet 111, a first coil 112 through which drive current ‘Idr’ is passed, a second coil 114 through which a voltage ‘Vind’ is induced, a needle 116 and a stop point 118. In some embodiments the first and second coils may be orthogonal to each other. In other applications they may be non-orthogonal to each other.
The second position 120 shows a rotor magnet 121 which has rotated from the first position of 110, a first coil 122 through which voltage ‘Vind’ is induced, a second coil 124 through which a drive current ‘Idr’ is passed, a needle 126 which has moved from position 116 and a stop point 128.
The third position 130 shows a rotor magnet 131 which has rotated from the position of 120, a first coil 132 through which drive current ‘Idr’ is passed in a reverse direction, a second coil 134 through which a voltage ‘Vind’ is induced in a reverse direction, a needle 136 and a stop point 138.
The fourth position 140 shows a rotor magnet 141 which has rotated from the third position of 130, a first coil 142 through which voltage ‘Vind’ is induced in a reverse direction, a second coil 144 through which a drive current ‘Idr’ is passed in a reverse direction, a needle 146 which has moved from position 136, and which has reached stop point 148.
The fifth position 150 shows a rotor magnet 151 which has not rotated from the position of 140, a first coil 152 through which drive current Idr is passed, a second coil 154 through which no induced voltage is present (since the rotor magnet 150 has not moved), a needle 156 which has not moved from position 146, as it has stayed against stop point 158.
FIG. 2 shows a graph 200 of five drive pulses 210, 220, 230, 240 and 250 corresponding to the first position 110, second position 120, third position 130, fourth position 140 and fifth position 150 of FIG. 1.
FIG. 3 shows a graph 300 of induced voltages drive pulses 310, 320, 330, 340 and 350 corresponding to the first position 110, second position 120, third position 130, fourth position 140 and fifth position 150 of FIG. 1. The induced voltage for the fifth position is negligible, as shown by no ‘bump’ 350 on the graph. The lack of induced voltage at the fifth position is due to the fact the needle 156 is stuck against the stop point 158, hence the rotor 151 cannot turn and no induced voltage is present.
In a conventional solution, the induced voltage of FIG. 3 is monitored, and at point 350 when no induced voltage is present, the solution recognizes that the stop position has been reached. Back electro magnetic force (EMF) is only generated when the motor/needle are moving in the magnetic field because the rotating permanent magnet creates an inducted voltage in both coils. In some conventional motor constructions when the stop point is reached, the motor rotor ‘dances’ around the stop, so the back EMF signal is reduced in amplitude. In other conventional motor constructions the signal waveform changes after reaching the stop, and the new waveform depends on the stop position relative to the rotor magnet pole position relative to the stator.
The conventional solution for stepper motor stop position synchronization uses a full-step coil drive voltage as shown in FIG. 2. The full step mode refers to an operation mode where only one coil is powered at a time. In this mode the rotor jumps in a 90 degree step (for a two pole motor with a 90 degree step). The jump angle can differ between motor constructions for example when the rotor magnet has more than 2 poles). In full step mode the coil current can have only two values, zero current and full coil current.
Microstepping is a technique where a current is applied to more than one coil to get a partial step actuation. This differs from a full-step method, as in the microstep solution partial steps are applied at a time. In an exemplary microstep mode the coils are powered by two phase-shifted signals that can have more than 2 values. In this microstep mode it is possible that two coils are powered at same time. In this microstep mode each full step is separated by some number of microsteps that allows reduction of vibration and providing smooth rotor rotation.
The conventional full-step solution for stepper motor stop position synchronization operates in the following manner. A full step coil drive voltage is applied to the stepper motor through a powered coil, and a signal is sensed on a second un-powered coil. When the stepper motor needle hits a stop point the needle cannot move further and the back EMF is reduced significantly. When the sensed signal on the un-powered coil indicates that the back EMF has reduced significantly, the needle is considered to have reached the stop point.
Disadvantages of the conventional solution include that it is coarse in finding the zero point. Furthermore since the motor operates in full-step mode with large steps, the motor/needle moves in large jumps and the action of the needle hitting the stop pin can cause wear on the mechanism over time and/or cause the needle to stick against the pin.
FIG. 4 illustrates the operation of the conventional solution of FIG. 1. The stall detection begins by retrieving the expected signal levels for a specific motor load and speed values (step 410). Once this is done, the stepper motor executes its task as determined by the microprocessor subsystem. When the coils in the stepper motor are energized by the driver circuit, the current feedback is amplified and digitized (step 420). The received digitized and conditioned feedback signal is then compared to the expected range of feedback signal levels (step 430). After the comparison, a decision is made as to whether the received digitized and conditioned feedback signal was within the expected signal levels (step 440). If the received signal is within the expected range, then a decision is made (step 460) whether the rotation phase is finished. If motor should continue to rotate, then the decision logic returns to step 420 by sampling the coil current again. If the rotation is finished, a confirmation message confirming the completion of the task is sent to the central system (step 470). The controller now knows that the rotation cycle is completed, i.e. that the gauge pointer reached desired position.
A disadvantage of the conventional solution of FIGS. 1 and 4 is that the expected feedback signal values must be collected for different motor speeds and load values, requiring the control firmware calibration for each speed/load profile. Moreover, this algorithm is difficult to adapt when motor rotor accelerates/decelerates during operation.
Another conventional sensor-less stop synchronization solution described in U.S. Pat. No. 6,667,595 analyzes the voltage back-EMF signal timing parameters rather the doing a simple amplitude analysis. In the method of U.S. Pat. No. 6,667,595 the current ramp slope in the full step mode is analyzed, and the stop point is characterized by increasing coil current setup time.
Another conventional sensor-less stop synchronization solution is described in U.S. Pat. No. 6,815,923 which uses the coil drive current feedback signal and compares the signal with some predefined lookup table for a given motor speed and load. When a stop is reached, the current waveform changes and a comparator detects the rotor stalling. In spite of the fact that microstep mode synchronization was not considered in this patent, it can be used here. A disadvantage of the solution of U.S. Pat. No. 6,815,923 is that for correct operation the appropriate feedback signal tables for different speed and load values should be collected and stored in the microcontroller memory, which makes the solution motor and load dependent, and tuning may be required after changing the motor.
It would be desirable to provide stop synchronization in the microstep mode that allows greater synchronization accuracy and reduces the noise and vibration during synchronization by using microstep mode instead full step mode.